import os
from dotenv import load_dotenv

# 加载.env文件中的环境变量
load_dotenv()

class Config:
    # PDF处理相关配置
    PDF_DPI = int(os.getenv('PDF_DPI', 200))
    PDF_THREAD_COUNT = int(os.getenv('PDF_THREAD_COUNT', 1))
    PDF_TIMEOUT = int(os.getenv('PDF_TIMEOUT', 300))  # PDF转换超时时间（秒）
    
    # OCR识别相关配置
    OCR_TIMEOUT = int(os.getenv('OCR_TIMEOUT', 300))  # OCR识别超时时间（秒）
    OCR_PAGE_TIMEOUT = int(os.getenv('OCR_PAGE_TIMEOUT', 10))  # 每页OCR识别超时时间（秒）
    
    # 模型相关配置
    USE_V5_NO_MOBILE_DEFAULT = os.getenv('USE_V5_NO_MOBILE_DEFAULT', 'True').lower() == 'true'
    
    # 自定义模型路径
    TEXTLINE_ORIENTATION_MODEL_DIR = os.getenv('TEXTLINE_ORIENTATION_MODEL_DIR', './custom_models/PP-LCNet_x1_0_textline_ori')
    TEXT_DETECTION_MODEL_DIR = os.getenv('TEXT_DETECTION_MODEL_DIR', './custom_models/PP-OCRv5_server_det')
    TEXT_RECOGNITION_MODEL_DIR = os.getenv('TEXT_RECOGNITION_MODEL_DIR', './custom_models/PP-OCRv5_server_rec')
    
    # 临时文件目录
    TEMP_DIR = os.getenv('TEMP_DIR', 'output_files/temp')
    
    @staticmethod
    def init_app(app):
        pass

class DevelopmentConfig(Config):
    DEBUG = True

class ProductionConfig(Config):
    DEBUG = False

config = {
    'development': DevelopmentConfig,
    'production': ProductionConfig,
    'default': DevelopmentConfig
}